А вот и код программы.
// WinSock1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "winsock.h"
const int WINSOCK_VERSION = 0x0101;
void main()
{
WSADATA wsaData;
if (WSAStartup(WINSOCK_VERSION, &wsaData))
{
printf ("winsock not bi initialized !\n");
WSACleanup();
}
else printf("Winsock initial OK !!!!\n");
if (WSACleanup()) printf("Error Cleapir\n");
else printf("Cleapir Good !!!!!\n");
}
С помощью #include "winsock.h" подключаем библиотечные функции. Объявляем константу с номером версии, которую мы будем поддерживать - WINSOCK_VERSION.
Функция WSAStartup инициализирует WinSock. Эта функция всегда самая первая при начале работы с WinSock. Вот как она описана.
int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );Первый параметр - это версия, которая будет использоваться. Младший байт основная версия, старший байт расширение версии. Если инициализация состоялась, то вернется нулевое значение. Вобщем-то инициализация заключается в сопоставлении номера версии и реально существуюшей DLL в системе.
Второй параметр - это указатель на структуру WSADATA, в которую возвратятся параметры инициализации.
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
} WSADATA, FAR * LPWSADATA;
WSACleanup завершает использование данного DLL и прерывает обращение к функциям WinSock. При удачном выполнении вернется нуль.